package com.iweb.day12;

/**
 * @author WuYongheng
 * @date 2021/12/5
 * @description 模拟人跑步的多线程案例
 */
public class Person extends Thread {
    /**
     * @param name 跑步的线程名
     * @param time 每跑100米所需要的时间
     * @param km   合计跑了多少千米
     */
    public Person(String name, int time, int km) {
        super(name);
        this.time = time;
        this.num = km * 1000 / 100;
    }

    private int time;// 跑100米所需要的时间
    private int num = 0;// 一共要跑多少个100米

    @Override
    public void run() {
        // 模拟跑步过程
        while (num > 0) {
            // 模拟跑步所消耗的时间
            try {
                Thread.sleep(this.time);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName() + "跑完了100米");
            // 表示跑了个100米
            num--;

        }
        System.out.println(Thread.currentThread().getName() + "到达了终点");
    }

    public static void main(String[] args) {
        // 定义年轻人的跑步时间
        int youngSpeed = 500;
        // 定义全程距离km
        int km = 1;
        Person young = new Person("年轻人", youngSpeed, km);
        Person oldMan = new Person("老年人", youngSpeed * 3, km);

        young.start();
        oldMan.start();
    }
}
